package com.sc.nft.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.EcologyHatchConf;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sc.nft.entity.vo.ecology.AdminSmeltingPageVO;
import com.sc.nft.entity.vo.ecology.HatchPageVO;
import com.sc.nft.entity.vo.merchantPledgeTask.AdminEcologyIncomeConfListVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 生态-孵化-配置总表(sc_ecology_hatch_conf)数据Mapper
 *
 * @author Sun
 * @description 由 Mybatisplus Code Generator 创建
 * @since 2023-10-13 17:22:11
 */
@Mapper
public interface EcologyHatchConfMapper extends BaseMapper<EcologyHatchConf> {

    /**
     * 获取熔炼配置列表
     *
     * @param page
     * @param collectionName
     * @return
     */
    IPage<AdminSmeltingPageVO> getSmeltingPage(Page page, @Param("collectionName") String collectionName);

    /**
     * 获取熔炼配置列表
     *
     * @param page
     * @param userId
     * @return
     */
    Page<HatchPageVO> hatchPage(Page page, @Param("userId") Long userId,@Param("userCreatorId") Long userCreatorId);

    /**
     * 获取生态收益配置列表
     *
     * @param page
     * @param collectionName
     * @param daoName
     * @return
     */
    Page<AdminEcologyIncomeConfListVO> getPageByCollectionNameAndDaoName(Page page, @Param("collectionName") String collectionName, @Param("daoName") String daoName);

    /**
     * 获取脚本生态收益配置列表
     *
     * @return
     */
    List<EcologyHatchConf> getScriptEcologyHatchConfList();

    /**
     * 获取此DAO下的所有孵化配置藏品id
     *
     * @param daoId
     * @return
     */
    List<Long> getEcologyHatchCollectonListByDaoId(@Param("daoId") Long daoId);


    /**
     * 根据熔炼配置的藏品id  获取DAOid
     *
     * @return
     */
    List<Long> getDaoIdByConfCollectionId();

    /**
     * 获取脚本所需要的熔炼配置
     *
     * @return
     */
    List<EcologyHatchConf> getScriptNeedList(@Param("id") Long id);

    /**
     * 获取脚本所需要的熔炼配置
     *
     * @return
     */
    List<EcologyHatchConf> getNeedList(@Param("id") Long id);
}
